package com.itheima.service.db.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.itheima.domain.db.ReportUser;
import com.itheima.mapper.ReportUserMapper;
import com.itheima.service.db.ReportUserService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

@DubboService
public class ReportUserServiceImpl implements ReportUserService {

    @Autowired
    private ReportUserMapper reportUserMapper;

    // 查询报告集合
    @Override
    public ReportUser findReport(Long userId, Integer id) {
        // 创建查询条件
        QueryWrapper<ReportUser> qw = new QueryWrapper<>();
        qw.eq("user_id",userId);
        qw.eq("quest_type", id);
        ReportUser reportUser = reportUserMapper.selectOne(qw);
        return reportUser;
    }

    // 保存用户报告
    @Override
    public void save(ReportUser reportUser) {
        reportUserMapper.insert(reportUser);
    }


    // 根据报告结果查相似用户
    @Override
    public List<ReportUser> findSimilar(ReportUser reportUser) {
        Long userId = reportUser.getUserId();
        Integer reportId = reportUser.getReportId();
        Integer questType = reportUser.getQuestType();
        return reportUserMapper.findSimilar(reportId,userId,questType);
    }

    // 根据用户报告id查用户报告
    @Override
    public ReportUser findById(Integer id) {
        return reportUserMapper.selectById(id);
    }

    // 更新用户报告
    @Override
    public void update(ReportUser reportUser) {
        QueryWrapper<ReportUser> qw = new QueryWrapper<>();
        qw.eq("user_id",reportUser.getUserId());
        qw.eq("quest_type",reportUser.getQuestType());
        reportUserMapper.update(reportUser, qw);
    }
}
